 /*******************************************************************************
  * Copyright (c) 2005, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  * IBM Corporation - Initial API and implementation
  *******************************************************************************/
 package org.eclipse.ui.internal.browser;

 import org.eclipse.ui.browser.IWebBrowser;

 /**
  * A
  *
  * <p>This interface is not intended to be implemented by clients.</p>
  *
  * @since 1.0
  */
 public interface IBrowserExt {
     /**
      * Returns the id of this client. Each known client has a distinct id.
      * Ids are intended to be used internally as keys; they are not
      * intended to be shown to end users.
      *
      * @return the client id
      */
     public String getId();

     /**
      * Returns the displayable name for this client.
      * <p>
      * Note that this name is appropriate for the current locale.
      * </p>
      *
      * @return a displayable name for this client
      */
     public String getName();

     /**
      * Returns the parameters for this browser.
      *
      * @return the parameters for this browser
      */
     public String getParameters();

     /**
      * Returns the browser's executable.
      *
      * @return the browser's executable
      */
     public String getExecutable();
     
     /**
      * Returns the OSs that this browser is available on.
      *
      * @return an array of OSs that this browser runs on
      */
     public String getOS();
     
     /**
      * Returns the default install locations of this browser.
      *
      * @return the default install locations of this browser
      */
     public String [] getDefaultLocations();
     
     /**
      * Checks whether the factory can work on the user system.
      *
      * @return false if the factory cannot work on this system; for example the
      * required native browser required by browser adapters that it
      * creates is not installed
      */
     public boolean isAvailable();

     /**
      * Obtains a new instance of a web browser.
      *
      * @return instance of IBrowser
      */
     public IWebBrowser createBrowser(String id, String location, String parameters);
 }

